/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fachada;

import bean.CaracteristicasConsulta;
import conexion.Conexion;
import dao.factory.DAOFisico2Factory;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Gustavo Londoño
 */
public class FachadaFisico2 {

    /**
     * Inserta una caracteristica en la tabal de fuerza y saltabilidad
     * @param oCaracteristicasConsulta contiene la cedula, evaluacion, especialidad, especialista, etc     * 
     * @return null si inserta, 1 si modifica, 2 foreignkey violation, 3 not_null violation
     */
    public String insertarSaltabilidad(CaracteristicasConsulta oCaracteristicasConsulta) {
        String res = null;
        Connection conn = null;
        boolean rollback = false;
        try {
            conn = Conexion.establecerConnection();
            conn.setAutoCommit(false);
            res = DAOFisico2Factory.getDAO().insertarSaltabilidad(conn, oCaracteristicasConsulta);
            conn.commit();
            return res;
        } catch (Exception e) {
            rollback = true;
        //Reportar en log y enviar a paginas de error
        } finally {
            try {
                if (conn != null) {
                    if (rollback) {
                        conn.rollback();
                    }
                    conn.close();
                }
            } catch (SQLException e) {
                //Reportar en log y enviar a paginas de error
            }
        }
        return res;
    }
    
   public String insertarFuerza(CaracteristicasConsulta oCaracteristicasConsulta) {
        String res = null;
        Connection conn = null;
        boolean rollback = false;
        try {
            conn = Conexion.establecerConnection();
            conn.setAutoCommit(false);
            res = DAOFisico2Factory.getDAO().insertarFuerza(conn, oCaracteristicasConsulta);
            conn.commit();
            return res;
        } catch (Exception e) {
            rollback = true;
        //Reportar en log y enviar a paginas de error
        } finally {
            try {
                if (conn != null) {
                    if (rollback) {
                        conn.rollback();
                    }
                    conn.close();
                }
            } catch (SQLException e) {
                //Reportar en log y enviar a paginas de error
            }
        }
        return res;
    }    
    
    /**
     * Según una cédula y un número de evaluación consulta en la tabla diagnosticoxfuerza los
     * resultados de la prueaba al paciente
     * @param idPaciente cédula del paciente
     * @param evaluacion número de la evaluación del paciente
     * @return ArrayList con objetos CaracteristicasConsulta de la fuerza y saltabilidad
     */
    public ArrayList getDiagnosticoFuerzaByPacienteEvaluacion(String idPaciente, int evaluacion, int evaluacionPacienteId) {
        ArrayList arrReturn = new ArrayList();
        Connection conn = null;
        boolean rollback = false;
        try {
            conn = Conexion.establecerConnection();
            conn.setAutoCommit(false);
            arrReturn = DAOFisico2Factory.getDAO().getDiagnosticoFuerzaByPacienteEvaluacion(conn, idPaciente, evaluacion, evaluacionPacienteId);
            conn.commit();
            return arrReturn;
        } catch (Exception e) {
            rollback = true;
            Logger.getLogger(FachadaFisico2.class.getName()).log(Level.SEVERE, null, e);
        //Reportar en log y enviar a paginas de error
        } finally {
            try {
                if (conn != null) {
                    if (rollback) {
                        conn.rollback();
                    }
                    conn.close();
                }
            } catch (SQLException e) {
                Logger.getLogger(FachadaFisico2.class.getName()).log(Level.SEVERE, null, e);

            }
        }
        return arrReturn;
    }
}
